home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / pgp23src.zip / SRC / MAKEFILE.UNX < prev    next >
Text File  |  1993-06-11  |  13KB  |  406 lines

  1. # makefile for PGP (unix)
  2. #
  3. # CFLAGS options:
  4. #
  5. # -DHIGHFIRST if building PGP on a big-endian system
  6. # -DDEBUG     to include debugging information
  7. # -DNOTERMIO  if your system has no termios
  8. # -DSVR2      for System V release 2
  9. # -DDYN_ALLOC if your compiler does not support large static arrays
  10. # -DSMALL_MEM if your machine has a small memory (required for MSDOS)
  11. # -DIDEA32    if your int's are 32 bits this is probably faster
  12. #
  13. # -DPORTABLE  and
  14. # -DMPORTABLE to build the portable version of the RSA primitives
  15. #             (ie if no optimized asm versions are available)
  16. #
  17. # Define one of:
  18. # -DMERRITT    Merritt's modmult (fast on risc machines)
  19. # -DPEASANT    Russian peasant modulo multiply algorithm
  20. # -DUPTON      use Upton's modmult algorithm
  21. # -DSMITH      use Smith's modmult
  22. # See also the file platform.h for system defaults
  23. #
  24. # If you don't have a working FIONREAD ioctl you must use one of these:
  25. # -DUSE_SELECT to use select() system call
  26. # -DUSE_NBIO   to use non-blocking read()
  27.  
  28. CFLAGS= -O -DUNIX -DPORTABLE $(BYTEORDER)
  29.  
  30. # must set byte order for targets "sysv" and "bsd"
  31. # BYTEORDER= -DHIGHFIRST
  32.  
  33. CC      = cc
  34. LD      = cc        # Link command
  35. LDFLAGS    =
  36. CPP     = $(CC) -E
  37. DBG    = -O
  38.  
  39. # uncomment this for old versions of make
  40. #MAKE    = make
  41.  
  42. ASM    = $(CC)    -c        # Assembler command
  43.  
  44. OBJS_EXT=            # ASM obj. files
  45. LIBS_EXT=            # Libararies
  46.  
  47. PROJ    =pgp
  48.  
  49. default:
  50.     @echo "type:"
  51.     @echo "        make <system>"
  52.     @echo ""
  53.     @echo "where <system> can be:"
  54.     @echo "        sun4gcc, sun4cc(*), sun3gcc, sun3asm, sun3cc(*), sun386i, sunspc,"
  55.     @echo "        sysv_386, sco-2.0, x286(*), hpux, linux, mips-ultrix, vax-ultrix,"
  56.     @echo "        xenix386, mach_386, 386bsd, isc, isc_asm, 3b1, 3b1_asm, rs6000,"
  57.     @echo "        bsd, bsdgcc, vax_bsd43, rt_aos4, osf, sgigcc_asm, sgigcc, irix"
  58.     @echo "        newsgcc, newsasm, aux(*), aux-gcc, os2, djgpp"
  59.     @echo ""
  60.     @echo "for targets marked with (*) you must first get unproto, see"
  61.     @echo "setup.doc for further details"
  62.  
  63.  
  64. all: $(PROJ)
  65.  
  66. # RSAOBJS = rsa.o nn.o digit.o r_random.o r_stdlib.o
  67.  
  68. rsaref: $(RSAOBJS)
  69.  
  70. RSADIR = ../../rsaref/source/
  71.  
  72. rsa.o: $(RSADIR)rsa.c global.h $(RSADIR)rsaref.h $(RSADIR)r_random.h \
  73.   $(RSADIR)md5.h
  74.     $(CC) -c -I$(RSADIR) -I. $(CFLAGS) -Dstatic= $(RSADIR)rsa.c
  75.  
  76. nn.o : $(RSADIR)nn.c global.h $(RSADIR)rsaref.h \
  77.   $(RSADIR)nn.h $(RSADIR)digit.h
  78.     $(CC) -c -I$(RSADIR) -I. $(CFLAGS) $(RSADIR)nn.c
  79.  
  80. digit.o : $(RSADIR)digit.c global.h $(RSADIR)rsaref.h $(RSADIR)nn.h \
  81.   $(RSADIR)digit.h
  82.     $(CC) -c -I$(RSADIR) -I. $(CFLAGS) $(RSADIR)digit.c
  83.  
  84. r_random.o : $(RSADIR)r_random.c global.h $(RSADIR)rsaref.h  \
  85.   $(RSADIR)r_random.h $(RSADIR)md5.h
  86.     $(CC) -c -I$(RSADIR) -I. $(CFLAGS) $(RSADIR)r_random.c
  87.  
  88. r_stdlib.o : $(RSADIR)r_stdlib.c global.h $(RSADIR)rsaref.h
  89.     $(CC) -c -I$(RSADIR) -I. $(CFLAGS) $(RSADIR)r_stdlib.c
  90.  
  91. _80386.o:    80386.S
  92.     $(CPP) $(ASMDEF) 80386.S > _80386.s
  93.     $(ASM) _80386.s
  94.     rm -f _80386.s
  95.  
  96. 8086.o: 8086.asm
  97.     cp 8086.asm 8086.s
  98.     $(ASM) 8086.s
  99.     rm -f 8086.s
  100.  
  101. _zmatch.o:    zmatch.S
  102.     $(CPP) $(ASMDEF) zmatch.S > _zmatch.s
  103.     $(ASM) _zmatch.s
  104.     rm -f _zmatch.s
  105.  
  106. #mc68020.o:
  107. #    $(CC) -c mc68020.S
  108.  
  109. ZIPOBJS= zbits.o zdeflate.o zfile_io.o zglobals.o \
  110.     zinflate.o zip.o zipup.o ztrees.o zunzip.o 
  111.  
  112. OBJ1 =    pgp.o crypto.o keymgmt.o fileio.o \
  113.     mdfile.o more.o armor.o mpilib.o mpiio.o \
  114.     genprime.o rsagen.o random.o idea.o passwd.o \
  115.     md5.o system.o language.o getopt.o keyadd.o \
  116.     config.o keymaint.o charset.o rsaglue.o
  117.  
  118. OBJS =    $(OBJ1) $(ZIPOBJS) $(OBJS_EXT) $(RSAOBJS)
  119.  
  120. $(PROJ):    $(OBJS)
  121.         $(LD) -o $(PROJ) $(OBJS) $(LDFLAGS) $(LIBS_EXT)
  122.  
  123.  
  124. linux:
  125.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o _zmatch.o" \
  126.     CFLAGS="-O -DUNIX -DIDEA32 -DASM"
  127.  
  128. 386bsd:
  129.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT="_80386.o _zmatch.o" \
  130.     CFLAGS="-O -DUNIX -DIDEA32 -DASM -DMAX_NAMELEN=255"
  131.  
  132. # Sun 3 with gcc
  133. # change -traditional-cpp to -traditional for gcc < 2.0
  134. sun3gcc:
  135.     $(MAKE) all CC=gcc LD=gcc \
  136.     CFLAGS="-O -traditional-cpp -DUNIX -DHIGHFIRST -DIDEA32 -DPORTABLE"
  137.  
  138. sun3asm:
  139.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT=mc68020.o \
  140.     CFLAGS="-O -traditional-cpp -DUNIX -DHIGHFIRST -DIDEA32"
  141.  
  142. # Sun 3 with standard cc: compile with unproto
  143. sun3cc: unproto/cpp
  144.     $(MAKE) all CC=cc LD=cc \
  145.     CFLAGS="-Qpath unproto -O -DUNIX -DHIGHFIRST -DIDEA32 -DPORTABLE"
  146.  
  147. # Sun 4 SPARC with gcc (tested with gcc 1.39 and newer, sparc.s can not be used
  148. # with older versions of gcc)
  149. # change -traditional-cpp to -traditional for gcc < 2.0
  150. sun4gcc:
  151.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT=sparc.o \
  152.     CFLAGS="-O -traditional-cpp -DUNIX -DHIGHFIRST -DIDEA32"
  153.  
  154. # Sun 4 SPARC with standard cc: compile with unproto
  155. sun4cc: unproto/cpp
  156.     $(MAKE) all CC=cc LD=cc OBJS_EXT=sparc.o \
  157.     CFLAGS="-Qpath unproto -O -DUNIX -DHIGHFIRST -DIDEA32"
  158.  
  159. sun386i:
  160.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT=_80386.o \
  161.     CFLAGS="-O -DUNIX -DIDEA32"
  162.  
  163. sunspc:
  164.     $(MAKE) all CC="ccspc -B/1.8.6/sun4 -ansi -w -I/usr/include" \
  165.     CFLAGS="-O -DUNIX -DIDEA32 -DHIGHFIRST -DUNIT32 -DMERRITT" \
  166.     OBJS_EXT=sparc.o
  167.  
  168. # Sony newsos v3 for m68k, with gcc
  169. # change -traditional-cpp to -traditional for gcc < 2.0
  170. newsgcc:
  171.     $(MAKE) all CC=gcc LD=gcc \
  172.     CFLAGS="-O -I. -traditional-cpp -DNOTERMIO -D_BSD -DUNIX -DHIGHFIRST -DIDEA32 -DPORTABLE"
  173.  
  174. #  with asm
  175. newsasm:
  176.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT=mc68020.s \
  177.     CFLAGS="-O -I. -traditional-cpp -DNOTERMIO -D_BSD -DUNIX -DHIGHFIRST -DIDEA32"
  178.  
  179. sysv:
  180.     $(MAKE) all CPP=/lib/cpp \
  181.     CFLAGS="-O -DUNIX -DPORTABLE -DUSE_NBIO $(BYTEORDER)"
  182.  
  183. # optimized version with 80386.S
  184. sysv_386:
  185.     $(MAKE) all CPP="/lib/cpp -DSYSV" OBJS_EXT="_80386.o _zmatch.o" \
  186.     CFLAGS="-O -DUNIX -DIDEA32 -DUSE_NBIO -DASM"
  187.  
  188. xenix386:
  189.     $(MAKE) all CPP=/lib/cpp OBJS_EXT="_80386.o _zmatch.o" \
  190.     CFLAGS="-O -DUNIX -DSVR2 -DIDEA32 -DUSE_NBIO -DASM"
  191.  
  192. # Interactive Unix SVR3/386 version 3.2 with gcc
  193. isc:
  194.     $(MAKE) all CC=gcc LD=gcc LDFLAGS="-lcposix" \
  195.     CFLAGS="-O -DUNIX -DIDEA32 -DUSE_NBIO -DPORTABLE -DNO_ITIMER"
  196.  
  197. isc_asm:
  198.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT=_80386.o ASMDEF=-DSYSV \
  199.     CFLAGS="-O -DUNIX -DIDEA32 -DUSE_NBIO -DNO_ITIMER" LDFLAGS="-lcposix"
  200.  
  201. mach_386:
  202.     $(MAKE) all CC=gcc LD=gcc CPP=/lib/cpp OBJS_EXT=_80386.o \
  203.     CFLAGS="-O -I. -DMACH -DUNIX -DIDEA32 -DNOTERMIO"
  204.  
  205. sco-2.0:
  206.     $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/xcpp OBJS_EXT=_80386.o \
  207.     ASMDEF=-DSYSV CFLAGS="-Dsco -O -DUNIX -DIDEA32 -DUSE_NBIO"
  208.  
  209. # Xenix 286
  210. x286:
  211.     $(MAKE) all CC="sh ccc.x286 -M2l" LD="cc -M2l" ASM="cc -M2l" \
  212.     OBJS_EXT=8086.o  LDFLAGS="-F 3000" \
  213.     CFLAGS="-LARGE -Ot -DUNIX -DNOPROTO -DSMALL_MEM -DDYN_ALLOC \
  214.     -DUSE_NBIO -DSVR2"
  215.  
  216. # AIX/386 v.1.3
  217. aix386:
  218.     $(MAKE) all CPP="/lib/cpp -DSYSV" \
  219.     CFLAGS="-O -DUNIX -DIDEA32 -DUSE_NBIO -DSYSV -DPORTABLE"
  220.  
  221. # AIX/370  (like general SysV)
  222. aix370:
  223.     $(MAKE) all CPP=/lib/cpp \
  224.     CFLAGS="-O -DUNIX -DIDEA32 -DUSE_NBIO -DSYSV -DHIGHFIRST -DPORTABLE"
  225.  
  226. 3b1:
  227.     $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp \
  228.     CFLAGS="-O -I. -DUNIX -DSVR2 -DPORTABLE -DUSE_NBIO -DHIGHFIRST"
  229.  
  230. 3b1_asm:
  231.     $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp OBJS_EXT=3B1_68010.o \
  232.     CFLAGS="-O -I. -DUNIX -DSVR2 -DUSE_NBIO -DHIGHFIRST"
  233.  
  234. # Silicon Graphics Iris IRIX
  235. sgigcc:
  236.     $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp \
  237.     CFLAGS="-O -DUNIX -DPORTABLE -DUSE_NBIO -DHIGHFIRST"
  238.  
  239. # SGI with assembler modules
  240. sgigcc_asm:
  241.     $(MAKE) all CC=gcc LD=gcc CPP=/usr/lib/cpp OBJS_EXT="r3000.o r3kd.o" \
  242.     CFLAGS="-O -DUNIX -DUSE_NBIO -DHIGHFIRST"
  243.  
  244. irix:
  245.     $(MAKE) all CC=cc LD=cc \
  246.     CFLAGS="-O -DUNIX -DPORTABLE -DUSE_NBIO -DHIGHFIRST -acpp"
  247.  
  248. hpux:
  249.     $(MAKE) all CPP=/usr/lib/cpp \
  250.     CFLAGS="-Aa +O3 +Obb5000 -D_INCLUDE_POSIX_SOURCE \
  251.     -D_INCLUDE_HPUX_SOURCE -D_INCLUDE_XOPEN_SOURCE -DHIGHFIRST -DUNIX \
  252.     -DPORTABLE -DUSE_SELECT -DIDEA32 -DMERRITT"
  253.  
  254. # VAX Ultrix 4.2 BSD rev. 96, system #3 with gcc
  255. vax-ultrix:
  256.     $(MAKE) all CC=gcc LD=gcc \
  257.     CFLAGS="-O -DUNIX -DPORTABLE -DUSE_SELECT \
  258.     -DSIG_IGN=1 -DSIG_DFL=0"
  259.  
  260. # DEC Ultrix 4.2 BSD with gcc with MIPSco processors
  261. #
  262. # To use dec's cc on mips you should
  263. # uncomment the next two lines because you can't compile r3000.c 
  264. #r3000.o: r3000.s
  265. #    $(AS) -o $@ r3000.s
  266. #
  267. mips-ultrix:
  268.     $(MAKE) all CC=gcc LD=gcc OBJS_EXT="r3kd.o r3000.o"\
  269.     CFLAGS="$(DBG) -DUNIX -DUSE_SELECT -DIDEA32"
  270.  
  271. # RS6000 running AIX
  272. rs6000:
  273.     $(MAKE) all CFLAGS="-O -DUNIX -DNOTERMIO -DPORTABLE \
  274.     -DMODERN -DHIGHFIRST -DIDEA32"
  275.  
  276. next:
  277.     $(MAKE) all \
  278.     CFLAGS="-O -DNEXT -DUNIX -DHIGHFIRST -DMACH -DPORTABLE -DNOTERMIO"
  279.  
  280. bsdgcc:
  281.     $(MAKE) all CC=gcc LD=gcc \
  282.     CFLAGS="-O -I. -DNOTERMIO -D_BSD -DUNIX -DPORTABLE -DUSE_NBIO $(BYTEORDER)"
  283.  
  284. bsd:
  285.     $(MAKE) all "LD=cc -s" \
  286.     CFLAGS="-O -I. -B/lib/ -DNOTERMIO -D_BSD -DUNIX -DPORTABLE -DUSE_NBIO $(BYTEORDER)"
  287.  
  288. sequent: unproto/cpp
  289.     $(MAKE) all "LD=cc -s -j" CPP=/usr/lib/cpp \
  290.     CFLAGS="-j -O -I. -Yp,unproto -DUNIX -DNOTERMIO -DPORTABLE -DUSE_NBIO $(BYTEORDER)"
  291.  
  292. # RT running bsd with gcc
  293. rt_aos4:
  294.     $(MAKE) all CC=gcc LD=gcc \
  295.     CFLAGS="-O -DUNIX -D_BSD -DMAX_NAMELEN=255 -DPORTABLE -DHIGHFIRST -DNOTERMIO -I."
  296.  
  297. # Vax running bsd with gcc
  298. vax_bsd43:
  299.     $(MAKE) all CC=gcc LD=gcc \
  300.     CFLAGS="-O -I. -DUNIX -D_BSD -DMAX_NAMELEN=255 -DNOTERMIO -DPORTABLE"
  301.  
  302. # The Open Software Foundation's OSF/1
  303. osf:
  304.     $(MAKE) all \
  305.     CFLAGS="-O -I. -D_BSD -DUNIX -DNOTERMIO -DPORTABLE $(BYTEORDER)"
  306.  
  307. # A/UX 3.0 using unproto (mine is invoked as a cpp using the CFLAGS shown
  308. # I placed the cpp in a subdirectory of /src/pgp called unproto
  309. aux: unproto/cpp
  310.     $(MAKE) all CC=cc \
  311.     LDFLAGS=-lposix \
  312.     CFLAGS="-B unproto/ -tp -DSVR2 \
  313.     -DHIGHFIRST -DUNIX -DPORTABLE -DUSE_SELECT -DUPTON"
  314. aux-gcc:
  315.     $(MAKE) all CC=gcc LD=gcc \
  316.     LDFLAGS=-lposix \
  317.     CFLAGS="-O2 -DSVR2 -traditional-cpp \
  318.     -DHIGHFIRST -DUNIX -DPORTABLE -DUSE_SELECT -DUPTON"
  319.  
  320. # optimized version with 80386.S for emx 0.8e, OS/2 2.0 or DOS
  321. os2:
  322.     $(MAKE) all PROJ=pgp.exe OBJS_EXT="_80386.o _zmatch.o" \
  323.     CC="gcc" CFLAGS="-O -DOS2 -DASM -DIDEA32" \
  324.     ASM="gcc -c" LD="gcc" LDFLAGS="pgp.def"
  325.  
  326. # DJGPP, DJ Delorie's port of GNU C to MS-DOA (thanks DJ!).  Tested with dmake.
  327. # You may have to rehack this -- I'm not good with makefiles.
  328. djgpp:
  329.     $(MAKE) "OBJS_EXT=80386.o zmatch.o" CC=gcc LD=gcc \
  330.     "CFLAGS=-O2 -DSMALL_MEM -DASM -DIDEA32" all
  331.  
  332. #
  333. # unproto for K&R compilers
  334. #
  335. # unproto was posted on comp.sources.misc: v23i012 v23i013
  336. #
  337. # unpack the unproto package in subdirectory unproto
  338. #
  339.  
  340. # unproto: needs preprocessed input
  341. unproto/unproto::
  342.     cd unproto && $(MAKE) PROG=unproto PIPE=
  343.  
  344. # cpp: pipes through /lib/cpp
  345. unproto/cpp::
  346.     cd unproto && $(MAKE)
  347.  
  348. clean:
  349.     -rm -f *.o $(PROJ) core a.out tags
  350.  
  351. tags:
  352.     ctags *.c *.h
  353.  
  354.  
  355. ## Dependencies ##
  356. armor.o : armor.c mpilib.h usuals.h platform.h fileio.h mpiio.h language.h \
  357.   pgp.h more.h armor.h crypto.h
  358. charset.o : charset.c usuals.h language.h charset.h system.h 
  359. config.o : config.c usuals.h fileio.h pgp.h more.h armor.h config.h \
  360.   charset.h 
  361. crypto.o : crypto.c mpilib.h usuals.h platform.h mpiio.h random.h idea.h \
  362.   crypto.h keymgmt.h keymaint.h mdfile.h md5.h fileio.h charset.h language.h \
  363.   pgp.h more.h armor.h exitpgp.h zipup.h rsaglue.h
  364. fileio.o : fileio.c random.h usuals.h mpilib.h platform.h mpiio.h fileio.h \
  365.   language.h pgp.h more.h armor.h exitpgp.h charset.h system.h 
  366. genprime.o : genprime.c mpilib.h usuals.h platform.h genprime.h random.h 
  367. getopt.o : getopt.c getopt.h 
  368. idea.o : idea.c idea.h usuals.h 
  369. keyadd.o : keyadd.c mpilib.h usuals.h platform.h crypto.h fileio.h \
  370.   keymgmt.h charset.h language.h pgp.h more.h armor.h exitpgp.h keyadd.h \
  371.   keymaint.h 
  372. keymaint.o : keymaint.c mpilib.h usuals.h platform.h random.h crypto.h \
  373.   fileio.h keymgmt.h keymaint.h mpiio.h charset.h language.h pgp.h more.h \
  374.   armor.h 
  375. keymgmt.o : keymgmt.c system.h mpilib.h usuals.h platform.h idea.h random.h \
  376.   crypto.h fileio.h keymgmt.h rsagen.h mpiio.h language.h pgp.h more.h \
  377.   armor.h md5.h charset.h keymaint.h 
  378. language.o : language.c usuals.h fileio.h language.h pgp.h more.h armor.h \
  379.   charset.h 
  380. md5.o : md5.c md5.h 
  381. mdfile.o : mdfile.c mpilib.h usuals.h platform.h mdfile.h md5.h fileio.h \
  382.   language.h pgp.h more.h armor.h 
  383. more.o : more.c system.h mpilib.h usuals.h platform.h language.h fileio.h \
  384.   pgp.h more.h armor.h charset.h 
  385. mpiio.o : mpiio.c mpilib.h # usuals.h platform.h mpiio.h pgp.h more.h armor.h 
  386. mpilib.o : mpilib.c mpilib.h # usuals.h platform.h 
  387. passwd.o : passwd.c random.h usuals.h md5.h language.h pgp.h more.h armor.h 
  388. pgp.o : pgp.c system.h mpilib.h usuals.h platform.h random.h crypto.h \
  389.   fileio.h keymgmt.h language.h pgp.h more.h armor.h exitpgp.h charset.h \
  390.   getopt.h config.h keymaint.h keyadd.h rsaglue.h
  391. random.o : random.c system.h random.h usuals.h language.h 
  392. rsagen.o : rsagen.c mpilib.h usuals.h platform.h genprime.h rsagen.h \
  393.   random.h rsaglue.h
  394. rsaglue.o : rsaglue.c mpilib.h mpiio.h pgp.h rsaglue.h
  395. system.o : system.c exitpgp.h system.h charset.h 
  396. zbits.o : zbits.c zip.h ztailor.h ziperr.h 
  397. zdeflate.o : zdeflate.c zunzip.h usuals.h system.h zip.h ztailor.h ziperr.h 
  398. zfile_io.o : zfile_io.c zunzip.h usuals.h system.h 
  399. zglobals.o : zglobals.c zip.h ztailor.h ziperr.h 
  400. zinflate.o : zinflate.c zunzip.h usuals.h system.h exitpgp.h 
  401. zip.o : zip.c usuals.h fileio.h language.h pgp.h more.h armor.h exitpgp.h 
  402. zipup.o : zipup.c zip.h ztailor.h ziperr.h zrevisio.h 
  403. ztrees.o : ztrees.c zip.h ztailor.h ziperr.h 
  404. zunzip.o : zunzip.c zunzip.h usuals.h system.h 
  405. r3000.o : r3000.c mpilib.h usuals.h platform.h lmul.h 
  406.